<template>
  <upload-excel :on-success="handleSuccess" />
</template>

<script>
import { reqImportEmployee } from '@/api/employees'
export default {
  name: 'Import',
  computed: {
    type() {
      return this.$route.query.type
    }
  },
  methods: {
    // 转换日期函数
    formatExcelDate(numb, format) {
      const ONE_DAY_MS = 24 * 60 * 60 * 1000
      const timestamp = (numb - 25569) * ONE_DAY_MS
      const time = new Date(timestamp)
      const year = time.getUTCFullYear()
      const month = time.getUTCMonth() + 1
      let date = time.getUTCDate()
      const isLeapYear = ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0)
      const daysInMonth = [31, isLeapYear ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
      date = Math.min(date, daysInMonth[time.getUTCMonth()])
      if (format && format.length === 1) {
        return year + format + (month < 10 ? '0' + month : month) + format + (date < 10 ? '0' + date : date)
      }
      return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)
    },
    // 配置成功函数
    async handleSuccess({ results, header }) {
      // header 表格头 results表格对象数组
      // console.log(header, results)

      if (this.type === 'user') {
        // header中, results中的数据是中文的, 但是提交给后台的要是英文的
        const userRelations = {
          '入职日期': 'timeOfEntry',
          '手机号': 'mobile',
          '姓名': 'username',
          '转正日期': 'correctionTime',
          '工号': 'workNumber'
        }

        const arr = []
        // 遍历表格对象数组的每一项
        results.forEach(item => {
          const userInfo = {} // 声明一个空对象
          // 遍历对象 表格每一项的item
          for (const key in item) {
            const EnglishKey = userRelations[key] // 取userRelations对象中的英文key
            // console.log('英文key', EnglishKey)
            if (['timeOfEntry', 'correctionTime'].includes(EnglishKey)) {
            // 需要转换时间-调用时间转换函数并传参
              userInfo[EnglishKey] = this.formatExcelDate(item[key], '-')
            } else {
            // 不需要转换
              userInfo[EnglishKey] = item[key] // 将item每一项的值(中文)赋值给空对象userinfo中的(英文)EnglishKey
            }
          }
          arr.push(userInfo) // 将赋值后的userinfo对象的值加入到arr数组中
        })
        console.log('arr', arr)
        await reqImportEmployee(arr) // 批量导入员工请求
      }
      this.$router.back() // 回退员工页面

      /*
    *导入功能
        *0.员工页面点击导入跳到import页面
        *1,点击上传按钮上传excel拿到组装好的对象数组arr
        *2。发请求批量导入的请求
        *3。回退到员工页面
    */
    }

  }
}
</script>

<style>

</style>
